package cn.tedu.straw.api.service;

import cn.tedu.straw.api.dto.PostQuestionDTO;
import cn.tedu.straw.commons.model.Question;
import cn.tedu.straw.commons.vo.QuestionDetailVO;
import cn.tedu.straw.commons.vo.QuestionListItemVO;
import cn.tedu.straw.commons.vo.QuestionVO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author tedu.cn
 * @since 2020-08-11
 */
public interface IQuestionService extends IService<Question> {
    /**
     * 发布问题
     *
     * @param postQuestionDTO 客户端提交到服务器的问题数据
     * @param userId          当前用户登ID
     * @param userNickName    当前用户登录昵称
     * @return
     */
    Integer postQuestion(PostQuestionDTO postQuestionDTO, Integer userId, String userNickName);

    /**
     * 热门问题列表
     *
     * @return
     */
    List<QuestionListItemVO> getQuestionList();

    /**
     * 查询“我的问答”的列表
     *
     * @param userId 当前登录的用户的id
     * @param page   要查询的页码
     * @return 当前登录的用户的“我的问答”的列表
     */
    PageInfo<QuestionVO> getMyQuestions(Integer userId, Integer page);

    /**
     * 问题详情列表
     *
     * @param id 问题id
     * @return 问题详情列表
     */
    QuestionDetailVO getQuestionDetail(Integer id);
}
